Overview

The Distributed Threads System (DTS) is a programming environment that supports the parallelization of irregular and highly data-dependent algorithms. Our current target architecture is a dynamic network of multiprocessor workstations.

A major goal in the design of DTS was programmability i.e. the ability to parallelize large codes under adverse and shifting conditions, while preserving good, but not necessarily optimal, efficiency. We need good performance of the exact same application program on networks of different sizes, including the case of dynamic addition or deletion of nodes. We also require that a parallel method can later be called as a parallel subtask by other programs under different conditions without reprogramming or reconfiguration.
Our programming style is based on the fork/join paradigm. We attempt to saturate the network with dynamically created tasks of various grainsizes. On a shared memory multiprocessor even light-weight parallel tasks can be supported as concurrent threads of control. The network analogue is an asynchronous RPC, i.e., a thread of control which can execute remotely because it carries a copy of all input data with it.
DTS is currently implemented on top of PVM, adding the remote RPC abstraction and turning the net into a pool of anonymous compute servers. Each node of DTS is multi-threaded and is thus ready to run on a multiprocessor workstation.

References

Related work


Tilmann Bubeck
Wilhelm-Schickard-Institut für Informatik
Arbeitsbereich Technische Informatik
Sand 13, D-72076 Tübingen
Tel: 07071/295865; Fax: 07071/610399
EMail: bubeck@peanuts.informatik.uni-tuebingen.de(bubeck@peanuts.informatik.uni-tuebingen.de)